Zunächst also eine kurze Einführung in den Leerstoff von heute und in dem Zusammenhang
eben auch eine Erläuterung, was wir mit dem Begriff Hybrid oder Hybrid Software im Zusammenhang
mit Maschinenprogrammen eigentlich meinen. Nun Maschinenprogramme bilden eine hybride
Schicht kann man grob sagen. Es geht nämlich einmal darum, dass wir in diesen Maschinenprogrammen
Instruktionen finden, die direkt von der Befehlsetzebene ausgeführt werden, also direkt von der CPU zur
Ausführung kommen. Und andererseits haben wir Instruktionen, die gezielt an das Betriebssystem
gehen. Und diese Instruktionen, die ans Betriebssystem gehen, werden denn von dem Betriebssystem,
wie man so schön sagt, partiell interpretiert. Es sind also zwei Sorten von Befehlen, die wir
gleich noch ein bisschen weiter auseinanderdiskutieren wollen. Diese Ebene, um die es hier geht,
eigentlich sind es, sagen wir mal, zwei Ebenen, zwei Ebenen, zwei und drei, bilden selbst eine
Programmherarchie von virtuellen Maschinen. Das sind nicht nur grob die Ebenen zwei und drei,
die hier eine Rolle spielen, sondern eigentlich auch, wie wir denn später sehen werden, die
innere Struktur dieser Ebene drei, von Software, die auf dieser Ebene drei laufen, die wir als eine
etwas feinkörnigere Programmherarchie kennenlernen werden. Wir werden das exemplarisch am Beispiel von
Intel-basierten Prozessoren der x86 Familie machen und konkret auch durchaus Codebeispiele aus dem
Linux-System präsentieren und damit denn die prinzipielle Funktionsweise von Systemaufrufen
letztlich zu vermitteln. Systemaufrufe, die eine zentrale Technik letztendlich darstellen,
damit Maschinenprogramme während ihrer Ausführung Betriebssystemfunktionen aktivieren können. Also
sowas wie einen Ausgabe machen können, Prozesse erzeugen können, Speicher anfordern können und so
weiter. Indem wir das tun, werden wir die grob Struktur von Maschinenprogrammen zumindest im
Ansatz kennenlernen. Hier werden wir eben die Bedeutung eines Laufzeitsystems, also etwa einer
C-Library kennenlernen, aber insbesondere auch von Dingen, die wir als Systemaufrufstümpfe begreifen
werden. Die alle zusammen genommenen, denn nachher wesentliche Bestandteile der Systemsoftware auf
dieser Ebene letztendlich sind und alle diese Stümpfe, das sind letztendlich nur kleine Routinen
wie auch Funktionen, die wir in sowas wie einer C-Library finden, werden dann zusammen mit den
Anwendungsroutinen zu einem sogenannten Lademodul zusammengebunden. Dieses Lademodul wäre dann
nachher die eigentliche technische Repräsentation eines Maschinenprogramms, das dann später von einem
Betriebssystem zur Ausführung gebracht wird, indem dieses Programm geladen wird, ein Prozess
erzeugt wird und denn damit startet. Die Beispiele, die wir hier sehen werden, sind symbolisch. Die
Programmbeispiele werden symbolisch dargestellt, aber wie wir in der letzten Vorlesungsstunde schon
gesehen haben, ist eigentlich die Programmierart auf der Ebene von Maschinenprogrammen numerisch.
Nun werden wir der Verständnis wegen nicht hier rein auf der numerischen Maschinencode versuchen,
die Funktionalitäten und die Bedeutung dieser Ebene darzustellen, sondern wir werden das schon
in Form von C-Programmen sehen, wie auch denn SM-Lab-Programm. Diese hybride Schicht, diese
Ebene 3 als hybride Schicht in einem Rechensystem bildet sich, wie ich eben eingangs schon sagte,
deshalb weil wir hier von zwei Sorten von Befehlen ausgehen müssen, die in diesen Maschinenprogrammen
enthalten sind, die Maschinenprogramme letztendlich aus diesen beiden Sorten von Befehlen existieren.
Die schreiben wir normalerweise nicht von Hand hin, sondern genau diese Sorten von Befehle werden in
den allerallermeisten Fällen eben von einem Compiler letztendlich generiert. Der größte
Block dabei sind die Maschinenbefehle, die denn direkt an die Befehlsetzebene gehen. Die werden
eben von der CPU, von der Zentraleinheit normalerweise direkt interpretiert. Die
direkte Interpretation bedeutet Ausführung dieser Befehle und wie wir eben auch in der
letzten Stunde gesehen haben, kann es bei der Ausführung solcher Befehle Ausnahmesituationen
geben. Das bedeutet denn hier zum Beispiel, dass die Zentraleinheit die CPU eine Ausnahme hervor
bringt, die behandelt werden muss und dann haben wir eine Ausnahmesituation, die zu einer partiellen
Interpretation auf durch das Betriebssystem letztendlich führt. Also ein Fehler ist bei
der Ausführung eines normalen Maschinenbefehls aufgetreten. In dem Fall würde die Hardware diesen
Fehler erkennen und dem Betriebssystem signalisieren eine Fehlerbehandlung zu starten. Der Effekt kann
der sein, dass das Betriebssystem in der Lage ist diesen Fehler zu beheben und dann kann es bedeuten,
dass das Maschinenprogramm in der Ausführung weitermacht. Kann aber auch bedeuten, dass der
Presenters
Zugänglich über
Offener Zugang
Dauer
00:15:14 Min
Aufnahmedatum
2020-05-09
Hochgeladen am
2020-05-10 00:56:05
Sprache
de-DE